// Learn TypeScript:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/typescript.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/typescript.html
// Learn Attribute:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html

import {ICommand} from "./facade/ICommand";
import Facade from "./facade/Facade";

const {ccclass, property} = cc._decorator;

@ccclass("StartupCommand")
export default class StartupCommand implements ICommand {
    async execute (...args):Promise{
        return new Promise((resolve, reject) => {
            console.log(cc.game, "game===");
            wx.onMessage( data => {
                console.log("WxSub wx.onMessage===>", data);
                if (data.event == "viewport"){
                    console.log("WxSub===>viewport!!!");
                }else {
                    let command = data.command;
                    let param = data.data;
                    if (param){
                        Facade.executeCommand(command, param);
                    }else {
                        Facade.executeCommand(command);
                    }
                }
            });
            resolve(true);
        });
    }
}
